3.6.2.2 ゼロフラッシュマスク適用
PEメモリ
に書き込み可能なデータ(
MAU
の出力、
行列レジスタ
の
転置読み出し
、
ALU
の出力、
L1BM
からPEへの転送)は
マスクフラグ
を用いて一部の値をゼロにできる。
マスク
作用時には
マスクレジスタ
にあらかじめ書き込んでおいた
マスクフラグ
を用いる。
マスクフラグ
が 0のとき、対応する箇所は書き込み前にゼロになる。
マスク
作用時には次を指定する。
マスク作用語長
MAU
の出力、
行列レジスタ
の
転置読み出し
、
ALU
の出力、
L1BM
からPEへの転送のどれに
マスク
を作用させるか(複数指定不可) どの
エントリ
を読み出すかの
アドレス
code:文法
<opcode>/(
ll
<mask-pattern>|$
ll
imr<adr>)
<opecode>
は
MAU
演算、
行列レジスタ
転置読み出し
、
ALU
演算、
L1BM
からPEへの転送のいずれかの
オペコード
である。
/
以降の文法は
書き込みマスク
の
単一行適用
と同じである。
書き込み
マスク
と異なり、
複数行適用
の文法は存在しない。
エラー
同一
ステップ
内において、
マスク作用語長
や
エントリ
の
アドレス
が一致しない複数の
単一行マスク適用
が指定された場合、エラーになる
複数の
オペコード
に
ゼロフラッシュマスク
適用が指定された場合、エラーになる
code:例
hmmul/ll0111 $lx $lm0v $llr0v
半精度行列ベクトル積
演算の結果について、第 1
サイクル
をすべて 0 としたうえで
GRF0
に書き込む。
ここで
半精度
MAU
演算の基本動作の結果は 2 長語になるため、
マスク作用語長
も 2 長語としている。